Thực đơn
C (ngôn ngữ lập trình) Cú phápC có nhiều điểm yếu trong cú pháp. Đáng chú ý là:
==
"nối kết" một cách chặt chẽ hơn &
và |
trong các biểu thức như là x & 1 == 0
.if (x=0) {...}
sẽ dễ gây ra các lỗi bất ngờ.*
đứng trước tên con trỏ và dặt []
sau tên mảng—người dịch). Nhừng toán tử khai báo này lại có các thứ tự ưu tiên khác nhau, cần phải được đặt trong các dấu ngoặc cẩn thận để đạt được sự khai báo mong muốn.Ben Werther & Damian Conway.A Modest Proposal: C++ Resyntaxed. Section 3.1.1. 1996.
Có một số vấn đề khác của C mà không trực tiếp do các lỗi hay sai sót, nhưng lại làm ngăn trở khả năng của người lập trình để xây đựng một hệ thống cỡ lớn, có thể bảo trì và ổn định. Các điển hình bao gồm:
#include
) dựa trên các dòng chữ nội tại rải rác không đồng nhất (trong các tập tin) nhằm giữ các nguyên mẫu và các định nghĩa được đồng bộ. Điều này làm tăng đáng kể số lần cho việc tạo dựng (phần mềm).Nhiều công cụ đã được tạo ra để giúp người lập trình C tránh dược các lỗi. Việc kiểm tra và kiểm toán mã nguồn tự động thì rất hiệu quả trong mọi ngôn ngữ. Chẳng hạn cho C là Lint. Một thực tế là sử dụng Lint để phát hiện các mã có nghi vấn khi một chương trình được viết lần đầu. Một khi chương trình đã qua được Lint, thì nó được chuyển dịch bởi một trình dịch C. Cũng có một thư viện cho việc tiến hành kiểm tra các biên của mảng và một dạng giới hạn của việc tự động dọn rác, nhưng đó không phải là một phần tiêu chuẩn của C.
Điều nên nhận thức là các công cụ này không phải là vạn năng. Bởi vì sự linh hoạt của C, nhiều kiểu lỗi như là việc dùng sai các hàm tham lượng động, việc dùng chỉ số ngoài biên của mảng và quản lý bộ nhớ không đúng thì không thể phát hiện được. Mặc dù vậy, nhiều trường hợp (lỗi) thông thường đều có thể được nhận ra.
Thực đơn
C (ngôn ngữ lập trình) Cú phápLiên quan
C Côn trùng Cleopatra VII Canada Chiến tranh thế giới thứ hai Chiến tranh thế giới thứ nhất Chiến tranh Việt Nam Chi (sinh học) Chiến tranh Pháp – Đại NamTài liệu tham khảo
WikiPedia: C (ngôn ngữ lập trình) http://www.csse.monash.edu.au/~damian/papers/HTML/... http://www.research.att.com/~bs/bs_faq.html#really... http://cm.bell-labs.com/cm/cs/who/dmr/chist.html http://cm.bell-labs.com/cm/cs/who/dmr/spacetravel.... http://www-106.ibm.com/developerworks/linux/librar... http://homepage.ntlworld.com/dmjones/cbook1_0a.pdf http://david.tribble.com/ http://david.tribble.com/text/cdiffs.htm http://www.library.cornell.edu/nr/bookcpdf/c1-2.pd... http://www.faqs.org/faqs/C-faq/faq/index.html